<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.4"/>
<title>StrangeIoC: strange.extensions.pool.impl.Pool Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
  $(document).ready(function() { searchBox.OnSelectItem(0); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
  <td style="padding-left: 0.5em;">
   <div id="projectname">StrangeIoC
   &#160;<span id="projectnumber">0.6.0</span>
   </div>
   <div id="projectbrief">The IoC/Binding Framework for Unity3D and C#</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.4 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
      <li>
        <div id="MSearchBox" class="MSearchBoxInactive">
        <span class="left">
          <img id="MSearchSelect" src="search/mag_sel.png"
               onmouseover="return searchBox.OnSearchSelectShow()"
               onmouseout="return searchBox.OnSearchSelectHide()"
               alt=""/>
          <input type="text" id="MSearchField" value="Search" accesskey="S"
               onfocus="searchBox.OnSearchFieldFocus(true)" 
               onblur="searchBox.OnSearchFieldFocus(false)" 
               onkeyup="searchBox.OnSearchFieldChange(event)"/>
          </span><span class="right">
            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
          </span>
        </div>
      </li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
      <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
      <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
    </ul>
  </div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Properties</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Events</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Pages</a></div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div id="nav-path" class="navpath">
  <ul>
<li class="navelem"><a class="el" href="namespacestrange.html">strange</a></li><li class="navelem"><a class="el" href="namespacestrange_1_1extensions.html">extensions</a></li><li class="navelem"><a class="el" href="namespacestrange_1_1extensions_1_1pool.html">pool</a></li><li class="navelem"><a class="el" href="namespacestrange_1_1extensions_1_1pool_1_1impl.html">impl</a></li><li class="navelem"><a class="el" href="classstrange_1_1extensions_1_1pool_1_1impl_1_1_pool.html">Pool</a></li>  </ul>
</div>
</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pro-methods">Protected Member Functions</a> &#124;
<a href="#pro-attribs">Protected Attributes</a> &#124;
<a href="#properties">Properties</a> &#124;
<a href="classstrange_1_1extensions_1_1pool_1_1impl_1_1_pool-members.html">List of all members</a>  </div>
  <div class="headertitle">
<div class="title">strange.extensions.pool.impl.Pool Class Reference</div>  </div>
</div><!--header-->
<div class="contents">
<div class="dynheader">
Inheritance diagram for strange.extensions.pool.impl.Pool:</div>
<div class="dyncontent">
 <div class="center">
  <img src="classstrange_1_1extensions_1_1pool_1_1impl_1_1_pool.png" usemap="#strange.extensions.pool.impl.Pool_map" alt=""/>
  <map id="strange.extensions.pool.impl.Pool_map" name="strange.extensions.pool.impl.Pool_map">
<area href="interfacestrange_1_1extensions_1_1pool_1_1api_1_1_i_pool.html" title="A mechanism for storing and reusing instances. " alt="strange.extensions.pool.api.IPool" shape="rect" coords="0,56,231,80"/>
<area href="interfacestrange_1_1extensions_1_1pool_1_1api_1_1_i_poolable.html" title="Interface for items that belong to a Pool. " alt="strange.extensions.pool.api.IPoolable" shape="rect" coords="241,56,472,80"/>
<area href="interfacestrange_1_1framework_1_1api_1_1_i_managed_list.html" title="A common interface for the constituents parts of a Binding, which at present are either a SemiBinding..." alt="strange.framework.api.IManagedList" shape="rect" coords="0,0,231,24"/>
<area href="classstrange_1_1extensions_1_1pool_1_1impl_1_1_pool_3_01_t_01_4.html" alt="strange.extensions.pool.impl.Pool&lt; T &gt;" shape="rect" coords="120,168,351,192"/>
</map>
 </div></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:aa85b5b028318a994373745e63c27a697"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa85b5b028318a994373745e63c27a697"></a>
virtual <a class="el" href="interfacestrange_1_1framework_1_1api_1_1_i_managed_list.html">IManagedList</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classstrange_1_1extensions_1_1pool_1_1impl_1_1_pool.html#aa85b5b028318a994373745e63c27a697">Add</a> (object value)</td></tr>
<tr class="memdesc:aa85b5b028318a994373745e63c27a697"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add a value to this List. <br/></td></tr>
<tr class="separator:aa85b5b028318a994373745e63c27a697"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aedafa80e33428458eab05e6d33ddce48"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aedafa80e33428458eab05e6d33ddce48"></a>
virtual <a class="el" href="interfacestrange_1_1framework_1_1api_1_1_i_managed_list.html">IManagedList</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classstrange_1_1extensions_1_1pool_1_1impl_1_1_pool.html#aedafa80e33428458eab05e6d33ddce48">Add</a> (object[] list)</td></tr>
<tr class="memdesc:aedafa80e33428458eab05e6d33ddce48"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add a set of values to this List. <br/></td></tr>
<tr class="separator:aedafa80e33428458eab05e6d33ddce48"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad04ffd8b97c64900e7e5f6eeb92afbdd"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad04ffd8b97c64900e7e5f6eeb92afbdd"></a>
virtual <a class="el" href="interfacestrange_1_1framework_1_1api_1_1_i_managed_list.html">IManagedList</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classstrange_1_1extensions_1_1pool_1_1impl_1_1_pool.html#ad04ffd8b97c64900e7e5f6eeb92afbdd">Remove</a> (object value)</td></tr>
<tr class="memdesc:ad04ffd8b97c64900e7e5f6eeb92afbdd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Remove a value from this List. <br/></td></tr>
<tr class="separator:ad04ffd8b97c64900e7e5f6eeb92afbdd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad39a1c92db74c3d1b065405b0bac9812"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad39a1c92db74c3d1b065405b0bac9812"></a>
virtual <a class="el" href="interfacestrange_1_1framework_1_1api_1_1_i_managed_list.html">IManagedList</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classstrange_1_1extensions_1_1pool_1_1impl_1_1_pool.html#ad39a1c92db74c3d1b065405b0bac9812">Remove</a> (object[] list)</td></tr>
<tr class="memdesc:ad39a1c92db74c3d1b065405b0bac9812"><td class="mdescLeft">&#160;</td><td class="mdescRight">Remove a set of values from this List. <br/></td></tr>
<tr class="separator:ad39a1c92db74c3d1b065405b0bac9812"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab09cbaa24c308da83a2a923e1aaf6010"><td class="memItemLeft" align="right" valign="top">virtual object&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classstrange_1_1extensions_1_1pool_1_1impl_1_1_pool.html#ab09cbaa24c308da83a2a923e1aaf6010">GetInstance</a> ()</td></tr>
<tr class="memdesc:ab09cbaa24c308da83a2a923e1aaf6010"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets an instance from the pool if one is available.  <a href="#ab09cbaa24c308da83a2a923e1aaf6010">More...</a><br/></td></tr>
<tr class="separator:ab09cbaa24c308da83a2a923e1aaf6010"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0b9746cdab600d749994dfa3de604fc2"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classstrange_1_1extensions_1_1pool_1_1impl_1_1_pool.html#a0b9746cdab600d749994dfa3de604fc2">ReturnInstance</a> (object value)</td></tr>
<tr class="memdesc:a0b9746cdab600d749994dfa3de604fc2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns an instance to the pool.  <a href="#a0b9746cdab600d749994dfa3de604fc2">More...</a><br/></td></tr>
<tr class="separator:a0b9746cdab600d749994dfa3de604fc2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af4a9b202649b74935b2d02721b4c29a7"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classstrange_1_1extensions_1_1pool_1_1impl_1_1_pool.html#af4a9b202649b74935b2d02721b4c29a7">Clean</a> ()</td></tr>
<tr class="memdesc:af4a9b202649b74935b2d02721b4c29a7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Remove all instance references from the <a class="el" href="classstrange_1_1extensions_1_1pool_1_1impl_1_1_pool.html">Pool</a>.  <a href="#af4a9b202649b74935b2d02721b4c29a7">More...</a><br/></td></tr>
<tr class="separator:af4a9b202649b74935b2d02721b4c29a7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5a936efde1ae47310598a1b54c68db44"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classstrange_1_1extensions_1_1pool_1_1impl_1_1_pool.html#a5a936efde1ae47310598a1b54c68db44">Restore</a> ()</td></tr>
<tr class="memdesc:a5a936efde1ae47310598a1b54c68db44"><td class="mdescLeft">&#160;</td><td class="mdescRight">Clean up this instance for reuse.  <a href="#a5a936efde1ae47310598a1b54c68db44">More...</a><br/></td></tr>
<tr class="separator:a5a936efde1ae47310598a1b54c68db44"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a31dd0baa23e31b9fe079783acdbbef4b"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classstrange_1_1extensions_1_1pool_1_1impl_1_1_pool.html#a31dd0baa23e31b9fe079783acdbbef4b">Retain</a> ()</td></tr>
<tr class="memdesc:a31dd0baa23e31b9fe079783acdbbef4b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Keep this instance from being returned to the pool  <a href="#a31dd0baa23e31b9fe079783acdbbef4b">More...</a><br/></td></tr>
<tr class="separator:a31dd0baa23e31b9fe079783acdbbef4b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:added3d6c62335be5ee0dd2e88c1b9f66"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classstrange_1_1extensions_1_1pool_1_1impl_1_1_pool.html#added3d6c62335be5ee0dd2e88c1b9f66">Release</a> ()</td></tr>
<tr class="memdesc:added3d6c62335be5ee0dd2e88c1b9f66"><td class="mdescLeft">&#160;</td><td class="mdescRight">Release this instance back to the pool.  <a href="#added3d6c62335be5ee0dd2e88c1b9f66">More...</a><br/></td></tr>
<tr class="separator:added3d6c62335be5ee0dd2e88c1b9f66"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-methods"></a>
Protected Member Functions</h2></td></tr>
<tr class="memitem:ac687dc8474a5e46b1cff3819aea2672d"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classstrange_1_1extensions_1_1pool_1_1impl_1_1_pool.html#ac687dc8474a5e46b1cff3819aea2672d">removeInstance</a> (object value)</td></tr>
<tr class="memdesc:ac687dc8474a5e46b1cff3819aea2672d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Permanently removes an instance from the <a class="el" href="classstrange_1_1extensions_1_1pool_1_1impl_1_1_pool.html">Pool</a>  <a href="#ac687dc8474a5e46b1cff3819aea2672d">More...</a><br/></td></tr>
<tr class="separator:ac687dc8474a5e46b1cff3819aea2672d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a35f11933a6148a85562e16fe564d8281"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a35f11933a6148a85562e16fe564d8281"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>failIf</b> (bool condition, string message, <a class="el" href="namespacestrange_1_1extensions_1_1pool_1_1api.html#a93ccdd4d6e731ba8a31a774428edec32">PoolExceptionType</a> type)</td></tr>
<tr class="separator:a35f11933a6148a85562e16fe564d8281"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-attribs"></a>
Protected Attributes</h2></td></tr>
<tr class="memitem:ad7b384df284bdd25b3ee158ec8e4b110"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad7b384df284bdd25b3ee158ec8e4b110"></a>
Stack&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classstrange_1_1extensions_1_1pool_1_1impl_1_1_pool.html#ad7b384df284bdd25b3ee158ec8e4b110">instancesAvailable</a> = new Stack ()</td></tr>
<tr class="memdesc:ad7b384df284bdd25b3ee158ec8e4b110"><td class="mdescLeft">&#160;</td><td class="mdescRight">Stack of instances still in the <a class="el" href="classstrange_1_1extensions_1_1pool_1_1impl_1_1_pool.html">Pool</a>. <br/></td></tr>
<tr class="separator:ad7b384df284bdd25b3ee158ec8e4b110"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a05948789a396a039296ad34b7c40b164"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a05948789a396a039296ad34b7c40b164"></a>
HashSet&lt; object &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classstrange_1_1extensions_1_1pool_1_1impl_1_1_pool.html#a05948789a396a039296ad34b7c40b164">instancesInUse</a> = new HashSet&lt;object&gt; ()</td></tr>
<tr class="memdesc:a05948789a396a039296ad34b7c40b164"><td class="mdescLeft">&#160;</td><td class="mdescRight">A HashSet of the objects checked out of the <a class="el" href="classstrange_1_1extensions_1_1pool_1_1impl_1_1_pool.html">Pool</a>. <br/></td></tr>
<tr class="separator:a05948789a396a039296ad34b7c40b164"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adb85eb9451c096c5e89e0f067c9a0a04"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="adb85eb9451c096c5e89e0f067c9a0a04"></a>
int&#160;</td><td class="memItemRight" valign="bottom"><b>_instanceCount</b></td></tr>
<tr class="separator:adb85eb9451c096c5e89e0f067c9a0a04"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="properties"></a>
Properties</h2></td></tr>
<tr class="memitem:aa92fcb0df613f244078ac3b9bbea4c44"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa92fcb0df613f244078ac3b9bbea4c44"></a>
<a class="el" href="interfacestrange_1_1framework_1_1api_1_1_i_instance_provider.html">IInstanceProvider</a>&#160;</td><td class="memItemRight" valign="bottom"><b>instanceProvider</b><code> [get, set]</code></td></tr>
<tr class="separator:aa92fcb0df613f244078ac3b9bbea4c44"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa550cf065bdb9336d92e7161d81d1bb0"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa550cf065bdb9336d92e7161d81d1bb0"></a>
virtual object&#160;</td><td class="memItemRight" valign="bottom"><b>value</b><code> [get]</code></td></tr>
<tr class="separator:aa550cf065bdb9336d92e7161d81d1bb0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aeba1ffc6a5d99663ac73d4b63bf9949c"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aeba1ffc6a5d99663ac73d4b63bf9949c"></a>
virtual bool&#160;</td><td class="memItemRight" valign="bottom"><b>uniqueValues</b><code> [get, set]</code></td></tr>
<tr class="separator:aeba1ffc6a5d99663ac73d4b63bf9949c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7d0c42c432697e1605d97c63c7000302"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a7d0c42c432697e1605d97c63c7000302"></a>
virtual Enum&#160;</td><td class="memItemRight" valign="bottom"><b>constraint</b><code> [get, set]</code></td></tr>
<tr class="separator:a7d0c42c432697e1605d97c63c7000302"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac2babef4f2b79df84b13576ca2447643"><td class="memItemLeft" align="right" valign="top">System.Type&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classstrange_1_1extensions_1_1pool_1_1impl_1_1_pool.html#ac2babef4f2b79df84b13576ca2447643">poolType</a><code> [get, set]</code></td></tr>
<tr class="memdesc:ac2babef4f2b79df84b13576ca2447643"><td class="mdescLeft">&#160;</td><td class="mdescRight">The object Type of the first object added to the pool.  <a href="#ac2babef4f2b79df84b13576ca2447643">More...</a><br/></td></tr>
<tr class="separator:ac2babef4f2b79df84b13576ca2447643"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae374753b490c0fe6824c4b7a1eceab98"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae374753b490c0fe6824c4b7a1eceab98"></a>
int&#160;</td><td class="memItemRight" valign="bottom"><b>instanceCount</b><code> [get]</code></td></tr>
<tr class="separator:ae374753b490c0fe6824c4b7a1eceab98"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab781eb9ef122c6b4e3de72a76a14231a"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab781eb9ef122c6b4e3de72a76a14231a"></a>
virtual int&#160;</td><td class="memItemRight" valign="bottom"><b>available</b><code> [get]</code></td></tr>
<tr class="separator:ab781eb9ef122c6b4e3de72a76a14231a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad761e333a92ea5ef7647eaa06bbfc388"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad761e333a92ea5ef7647eaa06bbfc388"></a>
virtual int&#160;</td><td class="memItemRight" valign="bottom"><b>size</b><code> [get, set]</code></td></tr>
<tr class="separator:ad761e333a92ea5ef7647eaa06bbfc388"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a703f20f6e2e51ba1ca40974a572272a2"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a703f20f6e2e51ba1ca40974a572272a2"></a>
virtual <a class="el" href="namespacestrange_1_1extensions_1_1pool_1_1api.html#afb1f831222aa94de2fcb447a88146ad0">PoolOverflowBehavior</a>&#160;</td><td class="memItemRight" valign="bottom"><b>overflowBehavior</b><code> [get, set]</code></td></tr>
<tr class="separator:a703f20f6e2e51ba1ca40974a572272a2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6cc764bd656e3b6a1b903738e4656b4e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a6cc764bd656e3b6a1b903738e4656b4e"></a>
virtual <a class="el" href="namespacestrange_1_1extensions_1_1pool_1_1api.html#ac2dc67ad647400c4637d72c282028180">PoolInflationType</a>&#160;</td><td class="memItemRight" valign="bottom"><b>inflationType</b><code> [get, set]</code></td></tr>
<tr class="separator:a6cc764bd656e3b6a1b903738e4656b4e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa38c939cfdeb3e55df7c09f082c7039d"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa38c939cfdeb3e55df7c09f082c7039d"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><b>retain</b><code> [get, set]</code></td></tr>
<tr class="separator:aa38c939cfdeb3e55df7c09f082c7039d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header properties_interfacestrange_1_1extensions_1_1pool_1_1api_1_1_i_pool"><td colspan="2" onclick="javascript:toggleInherit('properties_interfacestrange_1_1extensions_1_1pool_1_1api_1_1_i_pool')"><img src="closed.png" alt="-"/>&#160;Properties inherited from <a class="el" href="interfacestrange_1_1extensions_1_1pool_1_1api_1_1_i_pool.html">strange.extensions.pool.api.IPool</a></td></tr>
<tr class="memitem:ada91aed79f4e553ceca25ef52427782c inherit properties_interfacestrange_1_1extensions_1_1pool_1_1api_1_1_i_pool"><td class="memItemLeft" align="right" valign="top"><a class="el" href="interfacestrange_1_1framework_1_1api_1_1_i_instance_provider.html">IInstanceProvider</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="interfacestrange_1_1extensions_1_1pool_1_1api_1_1_i_pool.html#ada91aed79f4e553ceca25ef52427782c">instanceProvider</a><code> [get, set]</code></td></tr>
<tr class="memdesc:ada91aed79f4e553ceca25ef52427782c inherit properties_interfacestrange_1_1extensions_1_1pool_1_1api_1_1_i_pool"><td class="mdescLeft">&#160;</td><td class="mdescRight">A class that provides instances to the pool when it needs them.  <a href="#ada91aed79f4e553ceca25ef52427782c">More...</a><br/></td></tr>
<tr class="separator:ada91aed79f4e553ceca25ef52427782c inherit properties_interfacestrange_1_1extensions_1_1pool_1_1api_1_1_i_pool"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab967eecf4fc76c5716cad1493d74d295 inherit properties_interfacestrange_1_1extensions_1_1pool_1_1api_1_1_i_pool"><td class="memItemLeft" align="right" valign="top">Type&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="interfacestrange_1_1extensions_1_1pool_1_1api_1_1_i_pool.html#ab967eecf4fc76c5716cad1493d74d295">poolType</a><code> [get, set]</code></td></tr>
<tr class="memdesc:ab967eecf4fc76c5716cad1493d74d295 inherit properties_interfacestrange_1_1extensions_1_1pool_1_1api_1_1_i_pool"><td class="mdescLeft">&#160;</td><td class="mdescRight">The object Type of the first object added to the pool.  <a href="#ab967eecf4fc76c5716cad1493d74d295">More...</a><br/></td></tr>
<tr class="separator:ab967eecf4fc76c5716cad1493d74d295 inherit properties_interfacestrange_1_1extensions_1_1pool_1_1api_1_1_i_pool"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0ad2b0ade39b7af713a0dfc3ddaec7bf inherit properties_interfacestrange_1_1extensions_1_1pool_1_1api_1_1_i_pool"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="interfacestrange_1_1extensions_1_1pool_1_1api_1_1_i_pool.html#a0ad2b0ade39b7af713a0dfc3ddaec7bf">available</a><code> [get]</code></td></tr>
<tr class="memdesc:a0ad2b0ade39b7af713a0dfc3ddaec7bf inherit properties_interfacestrange_1_1extensions_1_1pool_1_1api_1_1_i_pool"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the count of non-committed instances  <a href="#a0ad2b0ade39b7af713a0dfc3ddaec7bf">More...</a><br/></td></tr>
<tr class="separator:a0ad2b0ade39b7af713a0dfc3ddaec7bf inherit properties_interfacestrange_1_1extensions_1_1pool_1_1api_1_1_i_pool"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a89338069d9bf986689ceec24341fab3a inherit properties_interfacestrange_1_1extensions_1_1pool_1_1api_1_1_i_pool"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="interfacestrange_1_1extensions_1_1pool_1_1api_1_1_i_pool.html#a89338069d9bf986689ceec24341fab3a">size</a><code> [get, set]</code></td></tr>
<tr class="memdesc:a89338069d9bf986689ceec24341fab3a inherit properties_interfacestrange_1_1extensions_1_1pool_1_1api_1_1_i_pool"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets or sets the size of the pool.  <a href="#a89338069d9bf986689ceec24341fab3a">More...</a><br/></td></tr>
<tr class="separator:a89338069d9bf986689ceec24341fab3a inherit properties_interfacestrange_1_1extensions_1_1pool_1_1api_1_1_i_pool"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a64c22a4f15d41fe5f4109ac5f6d2df58 inherit properties_interfacestrange_1_1extensions_1_1pool_1_1api_1_1_i_pool"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="interfacestrange_1_1extensions_1_1pool_1_1api_1_1_i_pool.html#a64c22a4f15d41fe5f4109ac5f6d2df58">instanceCount</a><code> [get]</code></td></tr>
<tr class="memdesc:a64c22a4f15d41fe5f4109ac5f6d2df58 inherit properties_interfacestrange_1_1extensions_1_1pool_1_1api_1_1_i_pool"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the total number of instances currently managed by this pool.  <a href="#a64c22a4f15d41fe5f4109ac5f6d2df58">More...</a><br/></td></tr>
<tr class="separator:a64c22a4f15d41fe5f4109ac5f6d2df58 inherit properties_interfacestrange_1_1extensions_1_1pool_1_1api_1_1_i_pool"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2883441f5785470a7d1359c99c7adf41 inherit properties_interfacestrange_1_1extensions_1_1pool_1_1api_1_1_i_pool"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacestrange_1_1extensions_1_1pool_1_1api.html#afb1f831222aa94de2fcb447a88146ad0">PoolOverflowBehavior</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="interfacestrange_1_1extensions_1_1pool_1_1api_1_1_i_pool.html#a2883441f5785470a7d1359c99c7adf41">overflowBehavior</a><code> [get, set]</code></td></tr>
<tr class="memdesc:a2883441f5785470a7d1359c99c7adf41 inherit properties_interfacestrange_1_1extensions_1_1pool_1_1api_1_1_i_pool"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets or sets the overflow behavior of this pool.  <a href="#a2883441f5785470a7d1359c99c7adf41">More...</a><br/></td></tr>
<tr class="separator:a2883441f5785470a7d1359c99c7adf41 inherit properties_interfacestrange_1_1extensions_1_1pool_1_1api_1_1_i_pool"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aec2e1287c8eb3d188f70e0b121614d26 inherit properties_interfacestrange_1_1extensions_1_1pool_1_1api_1_1_i_pool"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacestrange_1_1extensions_1_1pool_1_1api.html#ac2dc67ad647400c4637d72c282028180">PoolInflationType</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="interfacestrange_1_1extensions_1_1pool_1_1api_1_1_i_pool.html#aec2e1287c8eb3d188f70e0b121614d26">inflationType</a><code> [get, set]</code></td></tr>
<tr class="memdesc:aec2e1287c8eb3d188f70e0b121614d26 inherit properties_interfacestrange_1_1extensions_1_1pool_1_1api_1_1_i_pool"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets or sets the type of inflation for infinite-sized pools.  <a href="#aec2e1287c8eb3d188f70e0b121614d26">More...</a><br/></td></tr>
<tr class="separator:aec2e1287c8eb3d188f70e0b121614d26 inherit properties_interfacestrange_1_1extensions_1_1pool_1_1api_1_1_i_pool"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header properties_interfacestrange_1_1framework_1_1api_1_1_i_managed_list"><td colspan="2" onclick="javascript:toggleInherit('properties_interfacestrange_1_1framework_1_1api_1_1_i_managed_list')"><img src="closed.png" alt="-"/>&#160;Properties inherited from <a class="el" href="interfacestrange_1_1framework_1_1api_1_1_i_managed_list.html">strange.framework.api.IManagedList</a></td></tr>
<tr class="memitem:a563724c81cc8fe5ec08025fe94e9f351 inherit properties_interfacestrange_1_1framework_1_1api_1_1_i_managed_list"><td class="memItemLeft" align="right" valign="top">object&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="interfacestrange_1_1framework_1_1api_1_1_i_managed_list.html#a563724c81cc8fe5ec08025fe94e9f351">value</a><code> [get]</code></td></tr>
<tr class="memdesc:a563724c81cc8fe5ec08025fe94e9f351 inherit properties_interfacestrange_1_1framework_1_1api_1_1_i_managed_list"><td class="mdescLeft">&#160;</td><td class="mdescRight">Retrieve the value of this List.  <a href="#a563724c81cc8fe5ec08025fe94e9f351">More...</a><br/></td></tr>
<tr class="separator:a563724c81cc8fe5ec08025fe94e9f351 inherit properties_interfacestrange_1_1framework_1_1api_1_1_i_managed_list"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header properties_interfacestrange_1_1extensions_1_1pool_1_1api_1_1_i_poolable"><td colspan="2" onclick="javascript:toggleInherit('properties_interfacestrange_1_1extensions_1_1pool_1_1api_1_1_i_poolable')"><img src="closed.png" alt="-"/>&#160;Properties inherited from <a class="el" href="interfacestrange_1_1extensions_1_1pool_1_1api_1_1_i_poolable.html">strange.extensions.pool.api.IPoolable</a></td></tr>
<tr class="memitem:a5765129c59b95f61b7ffcd707e1296d2 inherit properties_interfacestrange_1_1extensions_1_1pool_1_1api_1_1_i_poolable"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="interfacestrange_1_1extensions_1_1pool_1_1api_1_1_i_poolable.html#a5765129c59b95f61b7ffcd707e1296d2">retain</a><code> [get]</code></td></tr>
<tr class="memdesc:a5765129c59b95f61b7ffcd707e1296d2 inherit properties_interfacestrange_1_1extensions_1_1pool_1_1api_1_1_i_poolable"><td class="mdescLeft">&#160;</td><td class="mdescRight">Is this instance retained?  <a href="#a5765129c59b95f61b7ffcd707e1296d2">More...</a><br/></td></tr>
<tr class="separator:a5765129c59b95f61b7ffcd707e1296d2 inherit properties_interfacestrange_1_1extensions_1_1pool_1_1api_1_1_i_poolable"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><dl class="section see"><dt>See Also</dt><dd><a class="el" href="interfacestrange_1_1extensions_1_1pool_1_1api_1_1_i_pool.html" title="A mechanism for storing and reusing instances. ">strange.extensions.pool.api.IPool</a> </dd></dl>
</div><h2 class="groupheader">Member Function Documentation</h2>
<a class="anchor" id="af4a9b202649b74935b2d02721b4c29a7"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual void strange.extensions.pool.impl.Pool.Clean </td>
          <td>(</td>
          <td class="paramname">)</td><td></td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Remove all instance references from the <a class="el" href="classstrange_1_1extensions_1_1pool_1_1impl_1_1_pool.html">Pool</a>. </p>

<p>Implements <a class="el" href="interfacestrange_1_1extensions_1_1pool_1_1api_1_1_i_pool.html#a4cbaa845454117ccec8389a27642a9b0">strange.extensions.pool.api.IPool</a>.</p>

</div>
</div>
<a class="anchor" id="ab09cbaa24c308da83a2a923e1aaf6010"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual object strange.extensions.pool.impl.Pool.GetInstance </td>
          <td>(</td>
          <td class="paramname">)</td><td></td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Gets an instance from the pool if one is available. </p>
<dl class="section return"><dt>Returns</dt><dd>The instance.</dd></dl>

<p>Implements <a class="el" href="interfacestrange_1_1extensions_1_1pool_1_1api_1_1_i_pool.html#a07042ef56c57b6a5569de6360196ab11">strange.extensions.pool.api.IPool</a>.</p>

<p>Reimplemented in <a class="el" href="classstrange_1_1extensions_1_1pool_1_1impl_1_1_pool_3_01_t_01_4.html#a56a306d7432fb57b113889acd8f2dd63">strange.extensions.pool.impl.Pool&lt; T &gt;</a>.</p>

</div>
</div>
<a class="anchor" id="added3d6c62335be5ee0dd2e88c1b9f66"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void strange.extensions.pool.impl.Pool.Release </td>
          <td>(</td>
          <td class="paramname">)</td><td></td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Release this instance back to the pool. </p>
<p>Release methods should clean up the instance sufficiently to remove prior state. </p>

<p>Implements <a class="el" href="interfacestrange_1_1extensions_1_1pool_1_1api_1_1_i_poolable.html#afdea864987f51cfc9d83e9158dfcaa33">strange.extensions.pool.api.IPoolable</a>.</p>

</div>
</div>
<a class="anchor" id="ac687dc8474a5e46b1cff3819aea2672d"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual void strange.extensions.pool.impl.Pool.removeInstance </td>
          <td>(</td>
          <td class="paramtype">object&#160;</td>
          <td class="paramname"><em>value</em>)</td><td></td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Permanently removes an instance from the <a class="el" href="classstrange_1_1extensions_1_1pool_1_1impl_1_1_pool.html">Pool</a> </p>
<p>In the event that the removed Instance is in use, it is removed from instancesInUse. Otherwise, it is presumed inactive, and the next available object is popped from instancesAvailable. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">value</td><td>An instance to remove permanently from the <a class="el" href="classstrange_1_1extensions_1_1pool_1_1impl_1_1_pool.html">Pool</a>.</td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a5a936efde1ae47310598a1b54c68db44"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void strange.extensions.pool.impl.Pool.Restore </td>
          <td>(</td>
          <td class="paramname">)</td><td></td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Clean up this instance for reuse. </p>
<p>Restore methods should clean up the instance sufficiently to remove prior state. </p>

<p>Implements <a class="el" href="interfacestrange_1_1extensions_1_1pool_1_1api_1_1_i_poolable.html#a3eb6437f37f1e87b92c55a32689a0ef5">strange.extensions.pool.api.IPoolable</a>.</p>

</div>
</div>
<a class="anchor" id="a31dd0baa23e31b9fe079783acdbbef4b"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void strange.extensions.pool.impl.Pool.Retain </td>
          <td>(</td>
          <td class="paramname">)</td><td></td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Keep this instance from being returned to the pool </p>

<p>Implements <a class="el" href="interfacestrange_1_1extensions_1_1pool_1_1api_1_1_i_poolable.html#ad51f2499e20163c58147a886e5fd5692">strange.extensions.pool.api.IPoolable</a>.</p>

</div>
</div>
<a class="anchor" id="a0b9746cdab600d749994dfa3de604fc2"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual void strange.extensions.pool.impl.Pool.ReturnInstance </td>
          <td>(</td>
          <td class="paramtype">object&#160;</td>
          <td class="paramname"><em>value</em>)</td><td></td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Returns an instance to the pool. </p>
<p>If the instance being released implements IPoolable, the <a class="el" href="classstrange_1_1extensions_1_1pool_1_1impl_1_1_pool.html#added3d6c62335be5ee0dd2e88c1b9f66" title="Release this instance back to the pool. ">Release()</a> method will be called. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">value</td><td>The instance to be return to the pool.</td></tr>
  </table>
  </dd>
</dl>

<p>Implements <a class="el" href="interfacestrange_1_1extensions_1_1pool_1_1api_1_1_i_pool.html#a00d776e7b4f1735e7da8026c7ec7386c">strange.extensions.pool.api.IPool</a>.</p>

</div>
</div>
<h2 class="groupheader">Property Documentation</h2>
<a class="anchor" id="ac2babef4f2b79df84b13576ca2447643"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">System.Type strange.extensions.pool.impl.Pool.poolType</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">get</span><span class="mlabel">set</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>The object Type of the first object added to the pool. </p>
<p><a class="el" href="classstrange_1_1extensions_1_1pool_1_1impl_1_1_pool.html">Pool</a> objects must be of the same concrete type. This property enforces that requirement. </p>

</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>StrangeIoC/scripts/strange/extensions/pool/impl/Pool.cs</li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Tue Jan 28 2014 13:07:05 for StrangeIoC by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.4
</small></address>
</body>
</html>
